package net.realsee.service.wcs.device;

import com.baomidou.mybatisplus.extension.service.IService;
import net.realsee.domain.wcs.device.WcsPlcDevice;
import net.realsee.domain.wcs.device.bo.WcsPlcDeviceBo;
import net.realsee.domain.wcs.device.vo.WcsPlcDeviceVo;
import net.realsee.framework.core.domain.PageQuery;
import net.realsee.framework.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * IOT设备Service接口
 *
 * @author realsee
 * @date 2023-08-11
 */
public interface IWcsPlcDeviceService extends IService<WcsPlcDevice> {

    /**
     * 查询IOT设备
     */
    WcsPlcDeviceVo selectVoById(Long id);

    /**
     * 查询IOT设备列表
     */
    TableDataInfo<WcsPlcDeviceVo> selectVoPage(WcsPlcDeviceBo bo, PageQuery pageQuery);

    /**
     * 查询IOT设备列表
     */
    List<WcsPlcDeviceVo> selectVoList(WcsPlcDeviceBo bo);

    /**
     * 新增IOT设备
     */
    Boolean insertByBo(WcsPlcDeviceBo bo);

    /**
     * 修改IOT设备
     */
    Boolean updateByBo(WcsPlcDeviceBo bo);

    /**
     * 校验并批量删除IOT设备信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids);

    /**
     * 通过设备编号获取设备信息（会缓存）
     */
    WcsPlcDevice getByDevice(String device);

    /**
     * 清除设备缓存（任何修改和删除操作，都要调用该方法）
     */
    void cleanDeviceCache();
}
